═══ 1. Extended help ═══ This is a new variation of the original game "Mine" or "Minesweeper". o What's new in this variation? o Object of the game o Rules of the game o The playing window o Getting started o Customizing the game o I'm stuck! o Recovering from errors o Saving games o Use of the mouse o Use of the keyboard o About the program structure ═══ 1.1. What's new in this variation? ═══ There are several new concepts in this variation of Minesweeper: o The most important new concept is that ALL the games are solvable with the information on the screen and logic. Each randomly generated game is first "played" by the program, to test whether it is possible to be solved without guessing. Based on the solution, assuming it was solvable, it is assigned a level of difficulty. If this level of difficulty is acceptable, based on the settings of minimum and maximum level of difficulty, it is saved and later retrieved through the menuitem New. A point of interest: it can take several hundred games to find one that is truely solvable. o A 3 dimensional matrix is used for playing. Although this takes some time to get used to, it is worth the effort. The games are much more challenging than the original 2 dimensional ones. The 2 dimensional version is also available in the settings dialog. It can be useful for learning to solve the games without guessing. o The object of this version is to identify all the mines in the matrix; not to find your way through the mine field. o Cells surrounding an opened cell that has no mines surrounding it will be opened automatically. This always happens at the beginning of the game; because, the upper left cell never has a mine in the surrounding cells. Otherwise it wouldn't be solvable. o It is possible to get a hint from the program, as to one or more cells that contain a mine or are free. This can be useful in learning the logic of the game. o The current game and state is saved and restored across program starts. You don't have to solve a game within one sitting. ═══ 1.2. Object of the game ═══ The object of the game is to identify all the mines in the matrix. This can be done without guessing. All you need is the information already presented in the "opened" cells and the location of the mines that you have already identified. If you identify the last mine, you win. If you falsely try to identify a mine or if you try to open a cell that actually contains a mine, you lose. ═══ 1.3. Rules of the game ═══ The rules of the game are pretty simple. You are first presented with a matrix, where all the unkwown cells look like buttons. The upper left cell never has any mines surrounding it, so it and all its surrounded cells are already "opened". This automatic opening continues for any opened cells that also don't have any mines surrounding them. An "opened" cell appears flat and contains a number. This is the number of mines in the surrounding cells. If this number of mines have already been identified in the surrounding cells, then the rest of the unknown cells must be free and can be opened, for additional information. Don't forget the surrounding cells in adjacent levels in the 3 dimensional version of the game! If you think that a cell contains a mine, try to identify it by clicking on the cell with mouse button 2. If you're right, you reduce the number of mines that are left. If you're wrong, you lose. Alternatively you can move to the cell with the arrow keys and then press the M key. If you think that a cell does not contain a mine, try to open it by clicking on the cell with mouse button 1. If you're right, you've got some more information to work with. If you're wrong, you lose. Alternatively you can move to the cell with the arrow keys and then press the Enter key. If you identify all the mines in the matrix, you win. ═══ 1.4. The playing window ═══ The game is played on a matrix of cells. The matrix has one level in the 2 dimensional games. 3 dimensional games have three levels. They are labeled Top, Middle and Bottom; although they are actually presented left to right. Cells at the same place in adjacent levels are also "next" to each other. The largest possible block of cells in the 3 dimensional game is 27! o Unknown cells look like raised buttons, with nothing written on them. o Opened cells look flat and have a number written in them. This is the number of mines in the immediately surrounding cells. The current position is colored cyan. The other already opened cells are colored yellow. o A correctly identified mine looks like a raised button with a green smiley written on it. o If you make a mistake and lose the game, the cell where you incorrectly guessed is marked with a black X. The unidentified mines are displayed as raised buttons with red smilies written on them. o If you use the arrow keys to move around, the current position is designated with a small dark blue box within the cell. o If you turn on the area box or if you ask the program to count the mines within the total area, all the cells surrounding the current cell (the one colored cyan) will be inclosed in one or more dark blue boxes. There is only one box in the 2 dimensional game. There are two or three boxes in the 3 dimensional game. o If you are playing the 3 dimensional version and ask the program to count the mines on a level, all the cells surrounding the designated cell on the same level will be inclosed in a red box, slighty smaller than the area box. o If you request a hint from the program, the cells that contain a mine are marked with a red X. The cells that do not contain a mine are marked with a blue X. ═══ 1.5. Getting started ═══ The menuitem new is used to load a new game. This function is automatically started at the start of the program, if a game wasn't already in progress at the time of the last program exit, and after changing the game settings. After a game, you have to select this function yourself. If a game is available, it will be immediately displayed. You can then begin to solve the game. As a matter of interest, the actual difficulty of the game is displayed at the beginning of the game (1 is the least difficult and corresponds to difficulty levels 1 to 3, 2 corresponds to difficulty level 4 and 3 or greater corresponds to difficulty level 5). The minimum and maximum acceptable levels of difficulty can be specified in the settings dialog. If a game is not yet available, a message to this affect will be displayed and a "stop" button will be displayed at the bottom of the window. You can stop the waiting process by clicking on this button or by pressing the Esc key. (This doesn't stop the generation process; but, the menuitem New will have to be reselected later in order to load a generated game.) If the waiting process is stopped, a message will be displayed showing the current generation statistics: the number of generated games that were not solvable, the number that were rejected because they were too easy and the number that were rejected because they were too difficult. If it appears difficult to find an acceptable game, try adjusting the settings. Don't worry about the unsolvable games (unless you have specified an extremely large number of mines), they are always high. Other possibilities for loading a game from the games menu: o Restarting a lost game o Loading a saved game from the INI file o Loading a saved game from a seperate file ═══ 1.6. Customizing the game ═══ There are several ways to customize the game in the options menu: o The sound can be turned on/off. o The displaying of the area box, showing the cells that surround the current cell, can be turned on/off. o The displaying of the numbers in the already opened cells, other than the current cell, can be turned on/off. An interesting and much more difficult version of the game! o The learn mode can be turned on/off. In learn mode you can't lose; you will just be asked to try recounting. o The option for the background game generator to use less resources can be turned on/off. This option drastically reduces the resources used by the program; but also reduces the average difficulty of the generated games. o The game specifications can be changed in the setting dialog. These include: - 2 or 3 dimensions - horizontal size of matrix or level - vertical size of matrix or level - number of mines in matrix - minimum acceptable level of difficulty - maximum acceptable level of difficulty These settings are saved at each program end and restored at each program begin. ═══ 1.7. I'm stuck! ═══ If you're sure that there isn't a solution to the game, you've simply overlooked some relationship. Sometimes it helps just to turn on the area box. You should try reducing blocks of unknwown cells with other smaller blocks of unknown cells until you have a block that must be completely free or filled with mines. There are also several helper functions in the assistance menu: o You can ask the program to count the mines within the total area surrounding the current cell (the one colored cyan). o If you are playing the 3 dimensional version, you can ask the program to count the mines on a level surrounding a designated cell. This cell doesn't have to be opened. It can even contain a mine. It does have to have opened cells at the same position in two other levels in the matrix. Its actually a simple matter of subtraction. o As a last resort, you can request a hint from the program. The program starts with your current state and reports the first group of cells with a known status that it finds. You can then try to reconstruct the logic required to identify these cells. The marks stay on the matrix until you appropriately click on them or until you press the Esc key. All of these functions use the same information that is available to you on the screen. Its just that the program doesn't overlook anything. ═══ 1.8. Recovering from errors ═══ If you make a mistake and lose the game, you can load a new game or restart the lost game. You have a choice between restarting at the end of the game (at the point before the error) or at the beginning of the game. If your "mistake" was actually at the end of a series of moves based on a false assumption, you can then undo the "lucky guesses". They were also based on the false assumption and you don't need that information to solve the game. ═══ 1.9. Saving games ═══ The current game, if one is in progress, is always saved at the end of the program and restored at the beginning of the program. If you want to save the state of the game before trying a series of moves that you're not sure about, you can use the menuitem save. The game and current state will be saved in the INI file. This game can be reloaded with the menuitem load. A saved game can be reloaded from the point of the save or from the beginning, and it remains available until another game is saved or until the game settings have been changed. If you want to share an interesting game with someone else, you can use the menuitem "save as...". The game and current state will be saved in a seperate file with the name that you specify. This game can be loaded by anyone with the same game settings using the menuitem "load from...". The game can be loaded from the point of the save or from the beginning. ═══ 1.10. About the program structure ═══ This is a native OS/2 PM program, using a multithreaded structure. It is a completely new implementation of a DOS version that was written in 1989, but never released. The main thread handles the playing window and the dialog boxes. A second thread is the game manager. It is associated with an object window and manages the game generation process. This thread is actually started before the initialization of the playing window. It manages a reserve of up to 5 generated games, so that the player doesn't have to wait for a new game. It is normally generating new games as long as the program is running. If there are already 5 games in reserve, it will compare the difficulty of a newly generated game with the difficulty of the games that are already in reserve. If the new game appears more difficult than one that is already in reserve, it will replace the seemingly easier game. When the main thread requests a new game, it is given the reserve game that appears to be the most difficult. The longer the program runs, without changing the settings (this causes the reserve games to be deleted), the more difficult the games are; at least in theory. The actual difficulty is mostly a matter of perception. Only solvable games that fall within the specified minimum and maximum levels of difficulty are accepted in the reserve list. The list of reserve games is retained in the INI file across program starts. A third thread that actually generates and tests each game is created and controlled by the game manager thread. It receives a specification from the game manager thread and works until a solvable game with an acceptable level of difficulty is found or until the current generation is stopped by the game manager thread. This could happen because the current game settings have been changed. This is a real number cruncher and can take up a lot of processor resources. It is run at a normal priority until there is more than 1 game in reserve. It is then reduced to an idle priority. This can still be too much demand, if there are other processes that are also running in background. In this case there is an option to use less resources. With this option the generation thread will only be started when there are no games in reserved. This drastically reduces the resources. The disadvantage is that the player always gets the next acceptable game that is generated. It becomes a matter of luck as to the difficulty of the game. The most difficult games come very seldom. A fourth thread is used to play the melody at the end of the game. At the end of the program the current game (if a game is in progress), the current game settings, the current reserve games and the window size, position and maximize status are saved in the INI file. These are reloaded at the beginning of the program. ═══ 2. Mouse help ═══ A single click with Button 1 (normally left) is used to: o open a free cell, o move to an already opened free cell or o to point to any cell in response to the question about which cell in the menuitem "Mines on a level" A double click with Button 1 (normally left) is used to: o turn the display of the area box on and off. The mouse pointer must be positioned over a free cell. A single click with Button 2 (normally right) is used to: o identify a cell with a mine in it or o point to an already opened free cell where you want to have the "Mines in the total area" counted A single click with Button 3 (middle) is used to: o point to any cell where you want to have the "Mines on a level" counted Alternative: Use the Ctrl+L keys or menuitem "Mines on a level" to start the counting process. Then click on the desired cell with any mouse button. ═══ 3. Keys help ═══ The following keys can be used during a game: Arrow keys To move arround in the matrix. The movement will be designated with a small blue box within the cell. PgUp (3D only) To move up a level in the matrix. The movement will be designated with a small blue box within the cell. PgDn (3D only) To move down a level in the matrix. The movement will be designated with a small blue box within the cell. Enter or Spacebar To open a free cell, position on an already opened free cell or for 3D games to designate a cell for menuitem "Mines on a level". The action is taken at the location of the small blue movement box. M To identify a mine at the location of the small blue movement box. T To count the unmarked mines within the total area around the location of the small blue movement box. L (3D only) To count the unmarked mines on the same level surrounding the location of the small blue movement box. Esc To erase a hint that is currently being displayed. The following keys can be used while waiting for a new game to be generated: Esc, Enter or Spacebar To abort the waiting process. Statistics will be shown concerning the current state of the game generation. The generation continues in background. The time required for game generation is dependent on the settings. The following keys can be used as shortcuts to menuitems: F2 To load a new generated game. F3 To undo a move. Ctrl+F3 To redo an undone move. F4 To restart a lost game from the point of the error. Ctrl+F4 To reatart a lost game from the beginning. F5 To load a game that has been saved in the INI file from the point of the save. Ctrl+F5 To load a game that has been saved in the INI file from the beginning. F6 To save the current game in the INI file. F7 To load a game from a seperate file from the point of the save. Ctrl+F7 To load a game from a seperate file from the beginning. F8 To save the current game as a seperate file. Ctrl+X To exit the program. Ctrl+O To turn the sound on and off. Ctrl+S To turn the showing of the area box on and off. Ctrl+N To turn the displaying of the numbers in already opened free cells, other than the current cell, on and off. Ctrl+M To turn the learn mode on and off. Ctrl+R To turn the use of less resources on and off. F12 To change the settings of the game. Ctrl+T To count the mines within the total area surrounding the current cell. Ctrl+L (3D only) To count the mines on the same level surrounding the current cell. Ctrl+H To get a hint as to a group of cells that are free or mines. ═══ 4. "Game" menu ═══ This menu is used for loading, saving, reloading and restarting games. ═══ 4.1. Menuitem "New" ═══ A game manager is always running in background, generating new games. An array of up to 5 games are stored, even over program starts. Each newly generated game is compared with the currently stored games. If there are already 5 games stored and the new game appears to be more challenging than one of those already stored, then that one will be replaced with the new one. This menuitem is used for loading the most challenging of the already generated games. If there are no currently stored games, a message is shown to indicate that the program is waiting for a game. A stop button is also displayed. You can stop the waiting process by clicking on the stop button or by pressing the Esc, Enter or Spacebar key. You will then be presented with the generation statistics up to that point. These include number of unsolvable games, number of games that were too easy and number of games that were too difficult. These factors are influenced by the game settings. Stopping the waiting process does not stop the generation process. As a new game is being loaded, the level of difficulty will be displayed at the bottom of the window. If this menuitem is activated during a game, you will first be asked if you want to quit the current game. A postive response results in the destruction of the current game. A negative response results in the cancelling of the new function and you are returned to the current game. This function is automatically started at program start, if a game wasn't in progress at the time of the last program end, and after changing the game settings. ═══ 4.2. Menuitem "Undo" ═══ This menuitem is used for undoing a previous move. Sometimes you will make a mistake (it happens to the best of us). Perhaps you will press the wrong mouse button or just count wrong. If you have "luck", your wrong button or wrong count will be "right"; but, you have information that you shouldn't have and don't really need to solve the game. You can undo that move with this function. If your error was "wrong", you lost the game. You can use the restart function to restart the game at the point before the error. If your error included a series of moves, you can then use the undo function to also remove the "lucky" moves that actually were also wrong. Undo and redo chains are not saved with games. ═══ 4.3. Menuitem "Redo" ═══ This menuitem is used for redoing a previous move that was undone. This function can be used to redo a move if you mistakenly undo too many moves. It is only available immediately after an undo or series of undo's. The first new move eliminates the possible redo chain. Undo and redo chains are not saved with games. ═══ 4.4. "Restart" submenu ═══ This submenu is used for restarting a game that ended with an error. You have two choices: Restart at end (default) The game will be restarted at the point before the error. If the error was actually within a series of moves, you should also use the undo function to also remove any "lucky" moves that you made before the error. Those moves were also based on incorrect logic and you don't need that information to solve the game. Restart at beginning The game will be restarted at the beginning. The undo/redo chain will also be destroyed. ═══ 4.5. "Load" submenu ═══ This submenu is used to load a game that has previously been saved in the INI file, with the save function. You have two choices: Load as saved (default) The game will be reloaded at the point at which the save was made. The undo/redo chain is no longer available. This can be used to save a snapshot of the game, before trying a series of moves for which you are not sure. It saves the need to restart and undo a series of false moves. Load from beginning The game will be reloaded from the beginning. The undo/redo chain will also be destroyed. If this menuitem is activated during a game, you will first be asked if you want to quit the current game. A postive response results in the destruction of the current game. A negative response results in the cancelling of this function and you are returned to the current game. A saved game can always be reloaded until a new game is saved or until the game settings have been changed, so that the saved game doesn't match the new settings. ═══ 4.6. Menuitem "Save" ═══ This menuitem is used for saving the current game and state in the INI file. This game can then be loaded at a future time. A saved game can always be reloaded until a new game is saved or until the game settings have been changed, so that the saved game doesn't match the new settings. ═══ 4.7. "Load from..." submenu ═══ This submenu is used to load a game that was previously saved in a seperate file, with the save as... function. You have two choices: Load as saved (default) The game will be reloaded at the point at which the save was made. The undo/redo chain is no longer available. Load from beginning The game will be reloaded from the beginning. The undo/redo chain will also be destroyed. After selecting this function, you will be presented with a standard dialog box for specifying a file name. The default directory is always the one where the program is located. The default extension for the filename is M3D. The saved game must match the current game settings in the program that is doing the loading. This function can be used to exchange interesting games between players. If this menuitem is selected during a game and you select a saved game that matches the current game settings, you will first be asked if you want to quit the current game. A postive response results in the destruction of the current game. A negative response results in the cancelling of this function and you are returned to the current game. ═══ 4.8. Menuitem "Save as..." ═══ This menuitem is used to save the current game and state in a seperate file. After selecting this function, you will be presented with a standard dialog box for specifying a file name. The default directory is always the one where the program is located. The default extension for the filename is M3D. This function can be used to exchange interesting games between players. The saved game must match the current game settings in the program that is doing the loading. ═══ 4.9. Menuitem "Exit" ═══ This menuitem is used to exit the program. The current game, settings, window position and currently generated games will be saved in the INI file. These items will be retored at the next program start. Only the undo/redo chain will be lost. ═══ 5. "Options" menu ═══ This menu is used for changing the behavior of the program. ═══ 5.1. Menuitem "Sound" ═══ This menuitem is used to turn the sounds on and off. False keys are normally noted with a beep and the end of a game results in the playing of one of two different melodies, depending on whether the game was correctly solved or an error was made. This can be disturbing in certain environments. This function allows these sounds to be turned off and on. ═══ 5.2. Menuitem "Show area" ═══ This menuitem is used to turn the area box on and off. It is sometimes not obvious, which cells "surround" a certain cell. This is especially true in the 3D version. It's easy to overlook something important. The area box, which this program turns on and off, draws a blue box around all the cells that are "next to" the current position. This can also be achieved by double clicking with the mouse button 1 on an already opened free cell. A temporary area box will be displayed when the function to count the "mines within total area" is used. ═══ 5.3. Menuitem "Show numbers" ═══ This menuitem is used to turn the numbers in the known cells on and off. This mode of playing actually goes back to an earlier version of Minesweeper. The number of surrounding mines is only shown for the current cell. This makes the game much more challenging; because, you have to remember the other information. It is actually only playable in the 2D version. If you want to try it, you can use the function to turn the numbers on and off. One use in 3D games is to temporarily see the pattern of unknown cells, without being distracted by all the numbers. This can be useful in identifying corners of unknown blocks, which can be isolated with a certain cell that is known. ═══ 5.4. Menuitem "Learn mode" ═══ This menuitem is used to change between normal and learn mode. In learn mode errors do not result in the loss of the game. You will only be reminded to try counting again. This can be helpful for beginners, to avoid frequent restarts and undo's. ═══ 5.5. Menuitem "Use less resources" ═══ This menuitem can be used to reduce the resources used by the background game generation. A game manager is always running in background, generating new games. An array of up to 5 games are stored, even over program starts. Each newly generated game is compared with the currently stored games. If there are already 5 games stored and the new game appears to be more challenging than one of those already stored, then that one will be replaced with the new one. The game generation thread normally runs with idle priority as long as more than 1 game in reserve exists. This can still be an unacceptable burden on the system resources, if there are other things that are also trying to run in background. If this is the case, then you can modify the game manager with this function, so that only one game will be kept in reserve. The game generation thread will not be restarted as long as a reserve game exists. In this case, there are no resources used except those required by the user interface and occasionally the generation of 1 reserve game. This function drastically reduces resources used, but also reduces the difficulty of the games that are generated. It becomes a matter of luck whether the next acceptable game will be particularly challenging or not. ═══ 5.6. Settings dialog ═══ This dialog allows you to change the parameters of the game: Matrix type o 2 Dimensional o 3 Dimensional Matrix size o Horizontal (x) o Vertical (y) Difficulty o Number of mines o Minimum level of difficulty o Maximum level of difficulty The "Change" button is used to change the settings to those specified in the dialog box. Changes may result in the loss of of the current game and some or all of the games that have already been generated. If the changes would result in the loss of the current game, you will first be asked if you want to quit the current game. A negative response to this question will result in cancelling any changes made in the settings dialog. The "Cancel" button is used to exit the dialog without changing any parameters, regardless of any changes which have actually been made. The "Default" button can be used to restore the default values for each type of matrix. This can be helpful after a lot of playing around with the different parameters. Caution: Certain combinations of matrix size, number of mines and accepted levels of difficulty can result in specifications that are difficult, if not impossible, to realize. The result is a long, sometimes infinite, amount of time to generate a new game. If this happens, you can abort the generation. You will get three statistics, showing the current number of unsovlvable games and the number that were too easy or too difficult. A lot of games that were too easy means that you have specified too few mines for the matrix size or that you want more difficult games than those that can be generated with the current specification. Try increasing the number of mines or reducing the minimum level of difficulty. A lot of games that were too difficult means that you have specified too few mines for the matrix size or that you want easier games than those that can be generated with the current specification. Try reducing the number of mines or increasing the maximum level of difficulty. No games that were too easy or too hard means that the number of mines is too high for this matrix size. Try reducing the number of mines or having more patience with the game generation. Don't worry about the number of unsolvable games. This is always high. It usually takes several hundred attempts, sometimes a thousand or more, before a solvable game is generated. ═══ 5.6.1. "2 dimensional matrix" ═══ This is the matrix from the original version of Minesweeper. There is only one level, with a variable number of horizontal and vertical cells. This is the easiest version of the game. ═══ 5.6.2. "3 dimensional matrix" ═══ This is a 3D version of Minesweeper, using three levels of cells: a top, middle and bottom level (although they are actually presented next to each other). This version is much more challenging. There are up to 27 cells that are next to each other. It is also much easier to overlook combinations, which indicate the location of mines and free cells. Much more complicated "calculations" are required to solve this type of game. ═══ 5.6.3. "Horizontal (x)" ═══ This is the number of cells in a row for the matrix or level. Range: From 4 to 10 cells per row for 3 dimensional and 4 to 30 for 2 dimensional games. Caution: Too many cells per row can result in an unreadable display, depending on the resolution of your monitor. ═══ 5.6.4. "Vertical (y)" ═══ This is the number of cells in a column for the matrix or level. Range: From 4 to 10 cells per column for 3 dimensional and 4 to 30 for 2 dimensional games. Caution: Too many cells per column can result in an unreadable display, depending on the resolution of your monitor. ═══ 5.6.5. "Number of mines" ═══ This is the number of mines that will be placed in the matrix. Range: From 1 to 1/3 the number of cells in the matrix. Recommendation: Approximately 1/4 the number of cells is a good starting point. Caution: Too few mines in combination with a high minimum level of difficulty or too many mines in combination with a low maximum level of difficulty can result in a specification that is difficult, or even impossible, to generate. See cautions for settings dialog. ═══ 5.6.6. "Minimum level of difficulty" ═══ This is the lowest level of difficulty that will be accepted by the game generater. Range: From 1 (easiest) to the maximum level of difficulty Caution: Too few mines in combination with a high minimum level of difficulty can result in a specification that is difficult, or even impossible, to generate. See cautions for settings dialog. ═══ 5.6.7. "Maximum level of difficulty" ═══ This is the highest level of difficulty that will be accepted by the game generater. Range: From minimum level of difficulty to 5 (most difficult). Caution: Too many mines in combination with a low maximum level of difficulty can result in a specification that is difficult, or even impossible, to generate. See cautions for settings dialog. ═══ 6. "Assistance" menu ═══ This menu contains several functions to assist you in solving the game. ═══ 6.1. Menuitem "Mines within total area" ═══ This menuitem is used to count all the cells surrounding the current cell, in order to determine if all the unknown cells are mines, all free or a number of unidentified mines exists within a larger number of unknown cells. A temporary area box will be displayed, showing the cells which are included in the count; if the "show area" function has not already been turned on. A message will be displayed at the bottom of the window to show the results of the counting: o All unknown cells are free o All unknown cells are mines o There are so many unidentified mines within so many unknown cells o There are no unknown cells surrounding the current position This function uses the same information that is available to you on the screen. This function can also be selected by clicking with the mouse button 2 on an already opened free cell. ═══ 6.2. Menuitem "Mines on a level" ═══ This menuitem is used to count the surrounding cells on a single level, in order to determine if all the unknown cells are mines, all free or a number of unidentified mines in a larger number of unknown cells. You will first be asked to identify the cell that you mean. This is necessary because the cells on a level can be counted without knowing the status of the cell in the center. The desired cell can be designated by clicking on the cell with any mouse button or by moving to the cell with the arrow keys and then pressing the Enter key. A red box is then drawn around the cells, which are included in the count. A message will be displayed at the bottom of the window to show the results of the counting: o All unknown cells are free o All unknown cells are mines o There are so many unidentified mines within so many unknown cells o There are no unknown cells surrounding the current position o There is not enough information known, in order to count for the requested cell This function uses the same information that is available to you on the screen. This function is only available in 3 dimensional games. This function can also be selected by clicking with the mouse button 3 on any cell. In this case, the question about which cell you mean will be skipped. If you don't have a mouse with 3 buttons, you can move to the desired cell with the arrow keys and then press the L key. ═══ 6.3. Menuitem "Hint" ═══ This menuitem is used to receive a hint from the program, as to a group of cells that are free, mines or a combination of both. Free cells are marked with a blue X. Mines are marked with a red X. This function can be useful for beginners, if they use the hints to try and indentify the logic that was used to arrive at the hint. This can be done with the help of the counting functions mines within total area and mines on a level. The hints remain displayed until they are replaced with actual moves or until they are removed by pressing the Esc key. This function uses the same information that is available to you on the screen. ═══ 7. "Help" menu ═══ This menu is used for obtaining help on using the system. ═══ 7.1. Menuitem "Using help" ═══ This menuitem is used for obtaining help on using help itself. ═══ 7.2. Menuitem "General help" ═══ This menuitem is used for obtaining general help about the game. ═══ 7.3. Menuitem "Mouse help" ═══ This menuitem is used for obtaining help on using the mouse to play the game. ═══ 7.4. Menuitem "Keys help" ═══ This menuitem is used for obtaining help on using the keyboard to play the game. ═══ 7.5. Menuitem "Help index" ═══ This menuitem is used for obtaining an index of the topics in help. ═══ 8. Product information ═══ This is information about the copyright for the product. ═══ 9. Quit game dialog ═══ You have requested a function that would require that the current game be replaced. You have the following choices: o "Yes" - the requested function will be carried out and the current game will be replaced with the new game. o "No" - the requested function will be cancelled and the current game will be retained.